# Java 跨平台的原理

  1. 编译之后会生成与平台无关的字节码文件
  2. 得依赖不同平台的虚拟机(JVM)

# 配置环境

  • JAVA_HOME = D:\Java\jdk1.7.0
  • PATH = %JAVA_HOME%\bin

# Hello World

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}
1
2
3
4
5

# javac 命令

  • javac <options> <source files>
  • javac -d <目录> HelloWorld.java:编译 Java 源文件,并指定放置生成的字节码文件的位置,一点( . )表示当前路径(会自动生成相应的包目录)
  • javac -g:生成所有调试信息(lines、vars、source),如 LineNumberTable 属性表存放方法的行号信息,LocalVariableTable 属性表中存放方法的局部变量信息(抽象方法没有方法体,也就没有 LineNumberTable、LocalVariableTable)。缺省情况下只生成行号和源文件信息
  • javc -parameters:生成元数据以用于方法参数的反射

# java 命令

  • java [-options] class [args...]:执行类
  • java [-options] -jar jarfile [args...]:执行 jar 文件
  • 常见 options
    • java -version
    • java -classpath <目录> com.demo.hello.HelloWorld:运行指定目录下的字节码文件
    • java -cp .;myClass.jar com.demo.hello.HelloWorld:指定各个 JAR 文件具体的存放路径(用 ; 分隔)
    • java -ea:开启断言检测
    • java -D<名称>=<值> com.demo.hello.HelloWorld: 设置系统属性(Java system property)
    • java -verbose:class:输出虚拟机装入的类的信息
    • java -verbose:gc:在虚拟机发生内存回收时输出相关信息

# javap 命令

# Java 基本语法

  1. Java 语言严格区分大小写
  2. 一个 Java 源文件( .java )里可以定义多个 Java 类,但其中最多只能有一个类被定义成 public 类;若源文件中包含 public 类定义,则该源文件的文件名必须与该 public 类的类名相同
  3. 一个源文件中包含 N 个 Java 类时,成功编译后会生成 N 份字节码文件( .class),即每个类都会生成一份单独的 class 文件,且字节码文件名和其对应的类名相同
  4. 若一个类可以运行,则必须拥有 main 方法,因为 main 方法是程序的入口
Updated at: 2023-03-03 18:03:06